from urllib.error import URLError
from urllib.request import ProxyHandler, build_opener

"""
    在做爬虫的时候，免不了要使用代理，如果要添加代理，可以这样做：
    
    这里我们在本地需要先事先搭建一个 HTTP 代理，运行在 7879 端口上。

    这里使用了 ProxyHandler，其参数是一个字典，键名是协议类型（比如 HTTP 或者 HTTPS 等），键值是代理链接，可以添加多个代理。
    
    然后，利用这个 Handler 及 build_opener 方法构造一个 Opener，之后发送请求即可。
"""


# 首先要确认代理工具开启，然后确认本地打的代理端口，如果是Clash，应用主页即可看到
proxy_handler = ProxyHandler({
    'http': 'http://127.0.0.1:7879',
    'https': 'https://127.0.0.1:7879'
})
opener = build_opener(proxy_handler)
try:
    response = opener.open('https://www.instagram.com/')
    print(response.read().decode('utf-8'))
except URLError as e:
    print(e.reason)